Sidebar engine, object model and schema

ABSTRACT

An engine is provided for displaying an application for hosting a second application. The hosting application can be a sidebar on a display. The engine can contain a part or program which can include a manifest file, a definition file and/or a script file. The manifest file may contain a pointer to at least one of the definition file and the script file. The engine may also contain a loader that can locate the definition file and/or script file (e.g., via pointers in the manifest file) and load the definition file and/or script files of the part for processing. The engine may also execute script associated with the part and convert an object model into a user interface which can be displayed at a predetermined location on a display or docked onto a sidebar. The user interface can further be manipulated or relocated within the sidebar or removed (i.e., undocked) from the sidebar. The sidebar may be exploded or imploded with the corresponding parts on the sidebar displayed on the desktop or another application (exploded) or returned to the sidebar (imploded).

BACKGROUND

With the current explosion of information available to a computer user,it has become increasingly difficult to keep the information organizedand available to the user. This is particularly true when the user alsouses the computer to obtain information and to accomplish other computertasks at the same time. For example, a user may wish to write a documentin a word processing application or a spreadsheet application but mayalso wish to receive information simultaneously. If a user is working inthe word processing application, for example, the application window ofthe word processing program obscures other applications that may bedisplayed on the display. This impedes access to the other informationthat might have been displayed on the display. As a result, the userloses access to the desired information.

This problem is heightened when the information sought is dynamicinformation that might be subject to frequent changes. Some examples ofsuch information include weather conditions in any of a variety oflocations, obtaining the time, sports scores, breaking news events,stock quotes, traffic information, or mass transit status updates, toname a few. For example, a user may be working in a word processingapplication but still may wish to receive continuous updates on trafficconditions, particularly if the user plans to go out on the roads in thenear future. However, the displayed word processing application windowmay cover the traffic information on the display making the trafficinformation inaccessible to the user. As such, the user cannot make histravel plans ahead of time without first having to either close and openwindows or at least rearrange windows on the desktop. This would be atime-consuming task for the user.

In addition, there is a limited amount of space on the display such thatwith multiple types of desired information, screen space would rapidlybecome depleted. The window of an application that the user is currentlyusing would very likely obscure at least some of the application windowsproviding the desired information. For example, a user may wish toreceive traffic updates, stock quote information on selected securities,and weather information. However, while working in a word processingapplication, for example, the desired traffic, stock and weatherinformation would be obscured behind the active window. Thus, the userwould not be apprised of the latest traffic or weather information andwould be unprepared for the conditions outside or on the road. Likewise,the user would not be apprised of the price of his selected securitiesor other requested information. This might lead to losses in his stockportfolio, among other things.

Therefore, there exists a need in the art for a system and method forhosting, docking and/or undocking applications on another application topresent information to a user. There is also a need to provide dockingand undocking of applications in a easy-to-use and user-friendly manner.

SUMMARY

The system and method enables the display of content of an applicationwithin the display of another application, docking and undocking of anapplication in another application.

In one aspect, a representation of a part or program can be displayed ona computer display. The representation can also be displayed on asidebar, docked to the sidebar, undocked from the sidebar, orarranged/re-arranged on the sidebar.

In another aspect, a system is provided containing a part or program,the part or program can contain a file containing pointers to otherfiles associated with the part or program and other files containingcode or script associated with the part. The system can further includean engine for locating files associated with the part or program,loading the located files and executing the files.

In another aspect, a display element is provided that can host therepresentation of the part or program. Selection of the part or programin the display element can cause the part or program to be docked onto asecond application program display. The second application can be asidebar.

In another aspect, a computer-readable medium is provided withcomputer-executable code stored thereon for providing a representationof a user interface on a display.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a system for implementing the inventionwhich includes a general purpose computing device in the form of acomputer.

FIGS. 2A-2B are block diagrams illustrating components of a part,sidebar and user interface and schema for management of parts.

FIG. 3 illustrates an example of a definition file.

FIG. 4A illustrates an example of a user interface for displaying a listof parts for display.

FIGS. 4B-4C illustrate an example of undocking a part from a sidebar.

FIGS. 5 and 6 illustrate an example of selecting a part from a partpicker and docking the selected part to a sidebar.

FIG. 7 illustrates another example of docking a part on a sidebar.

FIGS. 8A-8D illustrates examples of management of overflow of parts on asidebar.

FIGS. 9A-9B illustrate an example of minimizing a sidebar.

FIG. 10 illustrates a computer desktop containing parts and a minimizedsidebar.

DETAILED DESCRIPTION

The examples may be implemented in an operating environment. FIG. 1illustrates an example of a suitable operating environment 100 in whichaspects may be implemented. The operating environment 100 is only oneexample of a suitable operating environment and is not intended tosuggest any limitation as to the scope of use or functionality. Otherwell known computing systems, environments, and/or configurations thatmay be suitable include, but are not limited to, personal computers,server computers, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, programmable consumer electronics, networkPCs, minicomputers, mainframe computers, distributed computingenvironments that include any of the above systems or devices, and thelike.

FIG. 1 illustrates an example of a suitable computing system environment100 for implementation. The computing system environment 100 is only oneexample of a suitable computing environment and is not intended tosuggest any limitation as to the scope of use or functionality. Neithershould the computing environment 100 be interpreted as having anydependency or requirement relating to any one or combination ofcomponents illustrated in the exemplary operating environment 100.

The invention is operational with numerous other general purpose orspecial purpose computing system environments or configurations.Examples of well known computing systems, environments, and/orconfigurations that may be suitable for use with the invention include,but are not limited to, personal computers, server computers, hand-heldor laptop devices, multiprocessor systems, microprocessor-based systems,programmable consumer electronics, network PCs, minicomputers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, and the like.

With reference to FIG. 1, an illustrative system includes a generalpurpose computing device in the form of a computer 110. Components ofcomputer 110 may include, but are not limited to, a processing unit 120,a system memory 130, and a system bus 121 that couples various systemcomponents including the system memory to the processing unit 120. Thesystem bus 121 may be any of several types of bus structures including amemory bus or memory controller, a peripheral bus, and a local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnect (PCI) bus also known as Mezzanine bus.

Computer 110 typically includes a variety of computer readable media.Computer readable media includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media and includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can accessed by computer 110. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of the any of the aboveshould also be included within the scope of computer readable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 140 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through an non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies. A user may enter commands andinformation into the computer 20 through input devices such as akeyboard 162 and pointing device 161, commonly referred to as a mouse,trackball or touch pad. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are often connected to the processing unit120 through a user input interface 160 that is coupled to the systembus, but may be connected by other interface and bus structures, such asa parallel port, game port or a universal serial bus (USB). A monitor191 or other type of display device is also connected to the system bus121 via an interface, such as a video interface 190. In addition to themonitor, computers may also include other peripheral output devices suchas speakers 197 and printer 196, which may be connected through a outputperipheral interface 190.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 110, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the computer 110 is connectedto the LAN 171 through a network interface or adapter 170. When used ina WAN networking environment, the computer 110 typically includes amodem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 185 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

In one example, a computer application is provided for providing desireddata. The application may be provided in a remote execution environment.Examples of such a remote execution environment may include but are notlimited to a web browser, a Terminal Services Desktop or a Virtual PCDesktop. The application can display a window, icon, or other displayelement on a computer display in which information can be presented. Forexample, the application may display a small window on a displaycontaining any type of desired information. Such information caninclude, for example, traffic information, weather information, newsevents, sports scores, time of day in different time zones, etc. Theseapplications may be any type of data file such as but not limited to aZIP file or CAB file, and are sometimes referred to as “parts,” widgets,or gadgets, which are described in more detail herein.

A user can dock a part (widget or gadget) to an application to displaythe part at a predetermined location on a computer display. Manycomputer applications can be used to dock a part. For example, a partcan be docked to an application window of a computer application (e.g.,a sidebar). The application window of a sidebar application canencompass, for example, a vertical rectangular area along a side of thecomputer display (e.g., the right side). However, the application windowcan be of any shape or configuration and can be located at any desiredlocation on the computer display. A part that is docked on a sidebar canalso be removed or undocked from the sidebar. Also, multiple instancesof one part may be displayed in the sidebar (e.g., a weather partdisplayed in multiple instances, each instance corresponding to theweather in a particular location).

FIG. 2 is a block diagram illustrating the part with the sidebar anduser interface (UI). The part 201 communicates information to a sidebarengine 202 which also exchanges information with a User Interface (UI)203. Through these interactions, a part can be displayed at a desiredlocation on a display or in conjunction with other parts on a display.Parts can also be docked to a sidebar or undocked from the sidebar.

FIG. 2B illustrates an example of one suitable schema in which one ormore illustrative aspects may be implemented. Although one particulardesign is provided, functional blocks provided here may be combined,rearranged, separated, or even skipped.

As FIG. 2B illustrates, the part 201 can include a file such as apointer file that lists the contents of other files that comprise thepart. As one example of a pointer file, the pointer file containing suchinformation may be a manifest file 301. The manifest file can alsoinclude other information as it pertains to the part. For example, themanifest file 301 may contain meta information that describes the part(e.g., name or title of the part). The manifest file 301 can alsoinclude pointers to other files in the part.

The part 201 may further include a file that contains the script for thepart and a definition file that contains computer code that represents auser interface (UI). In this example, the script for the part 201 can becontained in a script file 304 and the computer code (e.g., XML) thatrepresents or codes the UI can be contained in a definition file suchas, for example, a Part ML (XML) file 302.

The definition file can take many forms. One example of a representativedefinition is illustrated in FIG. 3. Merely to illustrate an example ofa definition file, a Part ML file is illustrated that corresponds to aclock UI containing a second hand, minute hand and hour hand. Theexample of FIG. 3 is merely to illustrate an example of a definitionfile and is not intended to limit the contents of definition files.

The part 201 may further include additional resource files 303 for thepart. These additional resource files 303 may include, for example,image files and/or sound files for the part 201, or text or data files.

A loader component module, for example a part loader 305, can processand display the part 201 on a computer display. In this example, theloader component module (e.g., a part loader 305) is provided that canload the part 201 via a loading process. In the loading process of thepart 201, the part loader 305 may have a pointer to indicate a file pathof a file or directory. If a directory is indicated to the part loader305, the part loader 305 searches within the indicated directory for thepointer file (e.g., manifest file 301) which may itself contain pointersto other files. The part loader 305 finds the relevant pointers withinthe manifest file 301 and follows those pointers to locate specificfiles within the part 201. The part loader 305 can send the specificfiles that it locates after following the pointers in the manifest file301 to other components in the engine to designated locations dependingon the nature of the specific files as described herein. In one example,the part loader 305 may locate definition files (e.g., Part ML files302) from the part 201 and send the Part ML files 302 to a programparser module such as but not limited to a Part ML engine 306. The partloader 305 may also locate script data files (e.g., script files 304) inthe part 201 and send these script data files (e.g., script files 304)to a script engine module (e.g., script engine 309). Any number ofscript files 304 and/or Part ML files 306 (including none of them) maybe located and sent to the respective engine modules (e.g., Part MLengine 306 or script engine 309) by the part loader 305.

As described, the definition file, such as but not limited to PartMLfiles 302 can describe a UI. The part loader 305 locates relevant PartML files 302 in the part 201 and passes the located, relevant Part MLfiles 302 to the program parser module (e.g., Part ML engine 306), whichparses the syntax of the Part ML files 302. The program parser module(e.g., Part ML Engine 306) thus creates a representation of a Part MLObject Model (OM) corresponding to or described by the Part ML files302, for example, XML to be received in the Part ML Engine 306. The PartML Engine 306 can then convert the representation into a desired UI anddraw the UI on the display. The Part ML Engine 306 may further injectthe PartML OM into the Script Engine 309 in a “hook-up phase”, describedin more detail below.

In passing script data files (e.g., script files 304) located in thepart 201 to a script engine module (e.g., the script engine 309), thepart loader 305 streams the text of the script files 304 to the scriptengine module (e.g., script engine 309). The script engine 309 parsesthe script files 304 and runs the script which causes an action ordesired event to occur. In addition, a System OM 312 and Settings OM 310may be provided for providing procedures or routines that may beexecuted corresponding to an object (i.e., methods). Such methods may beembodied on a computer-readable format, for example. Further, the SystemOM 312 may also contain information pertaining to characteristics orother attributes of an object or representation (i.e., properties).Properties may also be embodied on a computer-readable format. Suchmethods and/or properties may be used to provide representations ofobjects on a display and the ability to perform functions with thedisplayed object.

A Settings OM 310 may also be provided as a component of the System OM312, for example, and for storing an instance of the files associatedwith the part 201, such as the manifest file 301, script files 304, PartML Files 302, etc. The files associated with the part 201 can also bereferred to as the “part package.” There can be multiple instances ofthe same part 201 running on a machine at any given time. For example,if a part for providing the time of day is displayed as one instance ina sidebar on a display, the same part for providing the time of day maybe displayed as a second instance in the sidebar to provide the time ina different time zone, for example. The respective settings for eachinstance of the part for the clock can be stored in the Settings OM 310.The settings may further be given a name and name-value pairs can bestored in the Settings OM 310 for easy reference of the settings.

In an example of one phase of processing the part, the Part ML engine306 injects the Part ML OM into the Script Engine 309 and also injectsthe System OM 312 into the Script Engine 309. This phase can be termedthe “hook-up phase.” The functions and methods of the System OM 312,which can be called by the Script Engine 309 or C++ code and the Part MLOM are both injected into the Script Engine 309 which can executescript. The instructions within the script file 304 can be “hooked up”to the Part ML OM file or plurality of Part ML OM in a designatedconfiguration such that when an event is performed, the Part ML OM canfire the event such that the Script File 304 can be executed toaccomplish the event. Thus, in the hook-up phase, the part 201 permitsthe corresponding UI to be hooked up with logic (script) which, in turn,permits the UI to be hooked up to the computer system.

The User Interface (UI) 203 corresponding to the part 201 can bedisplayed on a display. In one example, the UI 203 may include a part UI308, a part picker 307, and a sidebar docking area 311 as illustrated inFIG. 2B and described herein.

A Part UI 308 is defined by the Part ML file 302 and may contain a setof UIs that can be drawn on a display corresponding to the part 201. ThePart UI 308 can take any number of appearances. In one example, the PartUI 308 appears on a display as a window that can be moved around to anydesired location on the display. An author can specify characteristicsof the Part UI 301. Alternatively, at least a portion of the Part UI 308can be defined by the system such that the author dos not alter certaincharacteristics of the Part UI 308. Reserving certain standard aspectsof the Part UI 308 such that an author does not alter the standardaspects may be useful in providing certain portions of the UI that arenecessary or preferred. One example of a Part UI 308 that would bepreferably present is a button or other icon for closing the Part UI308. If a user wishes to close a window for any reason such as to freeup space on the display for other work or because the window is nolonger in use, the user would likely wish to have a means for removingthe window from the display. Also, it would be helpful if the means forremoving the window from the display is a standard display element suchthat the user can easily recognize the display element as the means forremoving the window. Hence, a standard “close box” may be provided withthe Part UI 308 so that the user can easily recognize the close box andcan select the close box to close the window. However, if the authorwere permitted to freely control the characteristics of the close boxassociated with a Part UI 308, then the author could remove the closebox entirely. In that case, the Part UI 308 would be unremovable by theuser.

As another example, a window border may be a predetermined aspect of thePart UI 308 of the part 201. The window border area of an applicationwindow or a UI is often referred to as “chrome”. The chrome offers usersa standard appearance of an application window so that applicationwindows can be easily recognized by all users. Therefore, an author'scontrol of the chrome may be limited so that the chrome is not changedexcessively.

The UI 203 may further include a sidebar docking area 311. The sidebardocking area 311 can have a variety of appearances. For example, thesidebar docking area 311 may appear as a rectangular, circumscribed areaalong a side of a display. A part can be moved to the sidebar dockingarea 311 on the display and docked to the sidebar docking area 311.Multiple parts may be docked in the sidebar docking area 311 at the sametime and may also be arranged within the sidebar docking area 311. Also,any part docked in the sidebar docking area 311 may be removed (i.e.,“undocked”) from the sidebar docking area 311.

In another aspect, the UI 203 may also include a part picker 307. Usinga part picker 307, a user may select a desired part to display from alist of available parts in an interface. The parts may be furtherdisplayed in a predetermined area of the display anywhere on the displaysuch as in a sidebar. In one embodiment, the sidebar is a verticallyoriented area along the right side of the display.

FIG. 4A illustrates an example of a user interface for displaying a listof available parts from which a user may select desired parts fordisplay. This user interface can be termed a “part picker” 414. In thisexample, the part picker 414 is displayed on a computer desktop 401 anddisplays an organization of parts for selection. As FIG. 4A illustrates,the part picker 414 in this example contains a stock quote part 408 (forproviding stock quote information), an air traffic part 409 (forproviding information on air traffic conditions), sports scores part 410(for providing the latest sports results as well as on-going results),weather part 411 (for providing information on weather conditions in anydesired location), time part 412 (for providing the time in any desiredtime zone) and a webcam part 413 (for providing images of a desiredsubject matter). Although illustrated here as a rectangle, the partpicker 414 can be any shape or configuration. The part picker 414 mayalso be located anywhere on the display according to a user'spreference. In one example, the part picker 414 is transparent orsemi-transparent.

From the part picker 414, a user can select desired parts to bedisplayed in a persisted location, such as in a sidebar docking area311. FIG. 4A illustrates a display of the sidebar docking area 311 as arectangular, circumscribed area along the right vertical side of adisplay but the sidebar docking area 311 may be displayed anywhere onthe display and in any configuration. Parts (408, 409, 410, 411, 412,and/or 413) may be selected from the part picker 414 to be docked ordisplayed in the sidebar application display 406 in a variety of waysand the examples provided herein are not intended to be limiting to anyspecific method. For example, a user may select a part from the partpicker 414 with a cursor 407, drag the desired part to another location,and drop the part at the other location. Alternatively, a user canselect a desired part from the part picker 414 by, for example, clickingon the desired part, causing the desired part to be inserted or dockedat another location, such as in the sidebar application display 406.

As FIG. 4A illustrates, parts can be docked on a separate location onthe computer display 401 such as in the sidebar docking area 311. Thesidebar docking area 311 is illustrated in FIG. 4A as a verticallyoriented rectangular region on the right side of a display 401. However,a sidebar docking area can have any shape or configuration. FIG. 4A alsoillustrates parts that are docked on the sidebar docking area 311. Inthis example, the sidebar docking area 311 contains a traffic part 402,a news part 403, a weather part 404 and a time part 405. The trafficpart 402 provides information on traffic and road conditions in an areaof interest, the news part 403 provides late-breaking news. The weatherpart 404 provides weather information in an area or city of interest.The time part 405 provides the time in any desired time zone. Any ofthese parts (402-405) illustrated in FIG. 4A provides up-to-the-minuteinformation that can be updated as the information changes.

Parts may be removed or undocked from the sidebar docking area 311 asillustrated in the example of FIG. 4B. In this example, the news part403 is selected to be undocked from the sidebar docking area 311.Selection of the news part 403 may be accomplished in a variety of ways.In this example, selection of the news part 403 is accomplished byclicking on the news part 403 and dragging with the cursor 407. FIG. 4Cillustrates moving the news part 403 from the sidebar docking area 311to the part picker 414 (i.e., dragging and dropping the news part 403).The sidebar docking area 311 may rearrange the parts remaining in thesidebar docking area 311 after another part is undocked so that theparts are evenly spaced. As seen in the example of FIG. 4C, the trafficpart 402, weather part 404 and time part 405 are rearranged after thenews part 403 is undocked.

Parts may also be added to the sidebar (i.e., docked onto the sidebar)from the part picker. FIG. 5 illustrates an example of docking a partonto a sidebar. In this example, the stock quote part 408 is selected tobe docked onto the sidebar docking area 311. The cursor 407 is used toselect the stock quote part 408 and the stock quote part 408 is draggedto the sidebar docking area 311. When the part 408 overlaps the sidebardocking area 311, the part 408 may be docked onto the sidebar dockingarea 311. As seen in FIG. 6, the stock quote part 408 has been dockedinto the sidebar docking area 311. The parts that are already docked onthe sidebar docking area 311 can be rearranged to accommodate theincoming part 408. FIG. 6 illustrates the traffic part 402, news part403, weather part 404 and time part 405 rearranging to make space forthe stock quote part 408 as the stock quote part 408 is docked onto thesidebar docking area 311.

In FIG. 7, another part 410 is added (i.e., docked) to the sidebardocking area 311. However, in this example, the sidebar docking area 311appears to contain a maximum number of parts as there is insufficientfree space on the sidebar docking area 311 to display all of the parts.Specifically, in this example, the traffic part 402, news part 403,weather part 404, stock quote part 408 and time part 405 all take up theentire sidebar docking area 311 as a sports scores part 410 is draggedonto the sidebar docking area 311. The sidebar docking area 311 can beadjusted to accommodate additional parts in a variety of ways. FIGS.8A-8D illustrate examples of accommodating additional parts but are notlimited to the illustrated embodiments. Many additional methods foraccommodating additional parts may also be used.

FIG. 8A illustrates one example of docking of a part in a sidebar withother docked parts. In this example, the incoming part (in this example,the stock quote part 410) is docked onto the sidebar and another part isautomatically undocked from the sidebar. The undocked part (in thisexample, the time part 405) may be returned to the part picker 414 (notshown) or may be transferred to any desired location. For example, theundocked part may be sent to the desktop. The part that becomes undockedmay be determined by a variety of methods. In one example, the part thatis at the bottom of the displayed sidebar docking area 311 is undockedfrom the sidebar docking area 311. In another example, the leastreferenced part can be undocked from the sidebar docking area 311. Inyet another example, the last part docked onto the sidebar is the partthat is undocked. In still another example, the user may select whichpart to undock through, for example, a dialog box or warning box.

FIG. 8B illustrates another example of managing excess parts on asidebar. In this example the incoming part (e.g., the sports scores part410) is docked onto the sidebar docking area 311 at the location wherethe part was dragged. Because docking of the sports scores part 410results in overcrowding on the sidebar docking area 311. An excess partis removed from the visible display but not undocked from the sidebar inthis example. Rather, the non-visible part is still docked to thesidebar but merely not visible on the display. To view the excesspart(s) not visible on the display, a scroll bar 801 may be providedsuch that a user can scroll up or down to view any desired part that isdocked to the sidebar. Other known scrolling UI's may also oralternatively be used.

FIG. 8C illustrates another example of managing excess parts on asidebar. As in the previous example, the sports scores part 410 isdocked onto the sidebar docking area 311 but results in overcrowding onthe sidebar docking area 311. In this example, the excess part isremoved from the visible display but left docked to the sidebar dockingarea 311. However, to view the excess part(s) not visible on thedisplay, the parts on the sidebar docking area 311 may be scrolled sideto side. In the example of FIG. 8C, a scroll bar 820 (or any scrollingUI) may be provided such that a user can scroll side to side to view anydesired part that is docked to the sidebar.

FIG. 8D illustrates another example of managing an overflow of parts ona sidebar. In this example, the sports scores part 410 is docked to thesidebar docking area 311. Since this results in insufficient space inthe sidebar docking area 311 to display all parts, an extra part is notdisplayed on the display. Rather, the extra part remains docked in thesidebar docking area 311 but is in a saved part location that is notvisible on the display. In this example, an overflow indicator 802 isdisplayed in the sidebar docking area 311. When the overflow indicator802 is selected (e.g., with the cursor 407), any of the parts inoverflow (in this example, the time part 405) can be displayed.

In another example, a sidebar can be minimized, for example, when extraspace is required on the display. FIG. 9A illustrates a sidebar dockingarea 311 in which five parts are docked (traffic part 402, news part403, weather part 404, stock quote part 408, and time part 405). FIG. 9Billustrates the sidebar docking area 311 of FIG. 9A after the sidebardocking area 311 has been minimized. The location where the sidebardocking area 311 was situated prior to minimization is indicated by thedotted line. In this example, an icon 901 can be used in the system trayfor opening the sidebar again on the display. Selection of the icon 901can cause the sidebar docking area 311 to reappear on the display withthe docked parts.

A sidebar docking area 311 may be exploded or imploded withcorresponding changes in the display of the parts docked on the sidebardocking area 311. A sidebar docking area 311 and corresponding parts canbe “exploded” when the sidebar docking area 311 is removed from thedisplay. Upon exploding of the sidebar docking area 311, the parts thatare docked to the sidebar docking area 311 can be displayed in analternate location, in another application, or on the desktop. Explodingof the sidebar docking area 311 may involve the removal of the displayof the sidebar docking area 311. Examples include minimizing the sidebardocking area (as illustrated in FIGS. 9A and 9B) or quitting the sidebarapplication.

Hence in this example, after exploding (e.g., minimizing or closing) thesidebar docking area 311, the parts that are docked in the sidebardocking area 311 may also be removed from the display. In anotherexample, the parts that are docked in the sidebar docking area 311 arenot removed (i.e., “exploded”) but rather, the parts are “released” ontothe desktop or other desired location on the display so that the partsare displayed on the desktop or other desired location in a seeminglyrandom pattern, or at each port's pre-docked location on the desktop.FIG. 10 illustrates an example of a sidebar docking area 311 having beenremoved from the display (e.g., minimized). An icon 901 appears in thesystem tray such that selection of the icon 901 causes the reappearanceof the sidebar docking area 311 on the display. However, in thisexample, while the sidebar docking area 311 has been removed from thedisplay (e.g., minimized), the parts that were docked in the sidebardocking area 311 are still displayed on the display 401. In thisexample, the traffic part 402, news part 403, weather part 404, timepart 405 and the stock quote part 408 are displayed on the display 401in a random configuration. The parts may alternatively be displayed in aconfiguration that is predetermined or selected by the user.

A sidebar docking area 311 may also be “imploded” by restoring thedisplay of the sidebar docking area 311 on a display. Restoration of thedisplay of the sidebar docking area can be accomplished in a variety ofways. If the sidebar docking area 311 was minimized when “exploded,” thesidebar docking area 311 may be maximized (or otherwise opened) back tothe display. If the sidebar docking area 311 was closed, then thesidebar docking area 311 may be re-launched to restore the display ofthe sidebar docking area 311 on the display. In restoring the sidebardocking area 311, an icon 901 may be selected to cause the sidebardocking area 311 to be displayed again. The parts associated with thesidebar docking area 311 can be displayed as docked onto the sidebardocking area 311 again. The order of the parts in the sidebar dockingarea 311 after the display of the sidebar 206 is returned to the displaymay be random within the sidebar docking area 311 or may bepredetermined. The order of the parts may also be the same as the orderprior to minimizing the sidebar 206, if desired.

Included at the end of this detailed description is an Appendixdescribing examples of functions, notifications, messages and datastructures in a data file for representing a user interfacecorresponding to a program or part. For example, the data structures ofthe Appendix may be embodied in the Part ML file 302 as described.Because the Appendix will be readily understood by persons skilled inthe art, it will not be extensively discussed herein. As can be seen inthe appendix, however, various other messages or data structures can beused as part of a process similar to the examples of FIGS. 4A-4C, FIGS.5-7, FIGS. 8A-8C, FIGS. 9A-9C, and FIG. 10.

It is understood that aspects can take many forms and embodiments.Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

Appendix

Part Object

Events

Activate( )

Closed( )

Deactivate( )

Dock—//OnDock

DragBegin( )

DragEnd( )

ExitOverflow( )

Hide( )

Loaded( )

ScreenChanged

Show( )

ShowSettings

Undock

AddTimer((string) TimerName, (Function Pointer) Function)

RemoveTimer((String) TimerName)

Sleep((Int)Milliseconds)

Properties

ActiveWindow—r/o. (Boolean)

Docked—r/w. (Boolean) If the part is on the sidebar or not.

IsInOverflow—r/o. (Boolean)

ProcessGroup—r/o. (String) Name of group.

Settings—r/o. (Settings Object)

View—r/o. (Object—Element or ActiveX)

Title—r/o. (String) Name from manifest file.

Id—r/o. Sidebar-generated Unique Id for this part instance.

WidgetMenuButtonOffsetTop—r/w. (Int) Pixel offset of the menu

WidgetMenuButtonOffsetRight—r/w. (Int) Pixel offset of the menu

Hotkey

LogEvents—r/w. (Boolean)

Shown—r/o. Describes if any portion of the part is visible. (Boolean)

Visibility—r/w. Does the part have a visible window. (Boolean)

Part.Settings Object

-   -   Read((String)PropertyName)    -   IWrite((String)PropertyName, (String)PropertyValue)

Part.Animation Object

-   -   Methods    -   See Element for others Animations

Part.View Object

-   -   Collections    -   Children (Elements)    -   Methods    -   StopUpdates    -   StartUpdates    -   CreateElement((String)ElementType)    -   LoadResource((String)NamedResource) (Element)//Named resources        of types View, Strings    -   Properties    -   VisualsUpdating

Part.ViewElements Object

System Object

System.Diagnostics.EventLog Object

-   -   Methods    -   WriteEntry((String)EventDescription)—assumes Information Type    -   WriteEntry((String) EventDescription, (Int) EventLog EntryType)        -   1-Error        -   2-Warning        -   4-Information        -   8-SuccessAudit        -   16-FailureAudit

System.Display Object

-   -   Collection    -   Monitors (System.Display.Screen) Events    -   PrimaryScreenChanged( )//no args    -   ScreenChanged( )//no args    -   TerminalServerChanged//no args    -   Properties    -   IsDragFullWindows—r/o. (Boolean)    -   IsHighContrast—r/o. (Boolean)    -   IsDropShadowEnabled—r/o. (Boolean)    -   IsTerminalServerSession—r/o. (Boolean)    -   PrimaryScreen—r/o. (System.Display.Screen)

System.Display.Screen Object

-   -   Methods    -   GetBounds( )—(String) int,int//width,height of current screen    -   GetWorkingArea( )—(String) int,int//width,height of available        space (non-taskbar)    -   Properties    -   Height—r/o. (Int) Pixels for current Display    -   Left—r/o. (Int) Pixels for current Display    -   Top—r/o. (Int) Pixels for current Display    -   Width—r/o. (Int) Pixels for current Display    -   WorkingHeight—r/o. (Int) Pixels for current Display    -   WorkingLeft—r/o. (Int) Pixels for current Display    -   WorkingTop—r/o. (Int) Pixels for current Display    -   WorkingWidth—r/o. (Int) Pixels for current Display    -   DPI—r/o. (Int) Pixels per inch for full display    -   BitsPerPixel—(Int)//colors per pixel; 2,4,8,etc    -   Resolution—r/o. (String) 1200×800//current dimensions    -   DeviceName—(String)    -   PrimaryScreen—(String)//name of primary monitor

System.Environment Object

-   -   Properties    -   DialogFont    -   ShellFont    -   WindowTitleColor    -   WindowBackgroundColor    -   WindowFontColor    -   UserDomainName    -   UserName    -   MachineName    -   GetEnvironmentVariable    -   GetSystemetrics Properties    -   SystemParameterInfo Properties

System.Globallization Object

-   -   Methods    -   FormatNumber((Float/String) Number)    -   FormatDate((String) Format), Date)//ShortDate, LongDate    -   FormatTime((String) Format), Time)//ShortTime, LongTime    -   Properties    -   CurrentCulture—r/o. (String)//en-us    -   DisplayName—r/o. (String)//English (U.S.)    -   IetfLanguageTag—r/o. (String)//de-DE    -   LCID—r/o. (Int)//1033    -   Name—r/o. (String) “EnglishUS”    -   ThreeLetterISOLanguageName—r/o. (String)//eng    -   TwoLetterISOLanguageName—r/o. (String)//eng

System.IO.BinaryReader

System.IO.BinsaryWriter

System.Machine Object

-   -   Collections    -   Processors (System.Machine.ProcessorInfo)//Returns 1 processor        per core    -   Properties    -   CPUCount—r/o. (Int)    -   TotalCPUUsage—r/o. (Float) [0 . . . 1]    -   TotalMemory—r/o. (Int)

System.Machine.Processor Object

-   -   Properties    -   Load—r/o. (float [0 . . . 1])    -   ProcessorId—r/o. (String)    -   Stopped—r/o. (Boolean)

System.Net Object

-   -   System.New Mail Object    -   System.Net.Mail.Smtp Object    -   System.Net.NetworkInformation Object        -   Collections        -   NetworkInterfaceType (System. Net. NetworkInterface)        -   Events        -   NetworkAddressChanged( )//no event args        -   NetworkAvailabilityChanged//Fired when one of the networks            changes Address        -   System.Net.Dns Object            -   Methods            -   GetHostName—r/o. (String) mycomputer.example.com        -   System.Net.NetworkInformation.IPAddressInformation Object            -   Properties            -   Address—r/o. (String) 127.0.0.1            -   IsTransient—r/o. (Boolean) Will this address change            -   periodically        -   System.Net.IPInterface Object            -   Collections            -   DnsAddresses (collection)            -   Properties            -   PrimaryDnsAddress—r/o. (String)—r/o. (Boolean)        -   System.Net.NetworkInterface Object            -   Properties            -   SignalStrength—(Int) [0 . . . 100]            -   SSID—r/o. (String) Name of wireless network            -   NetworkType—r/ow (String) Name of network type    -   System.Net.Soap Object

System.PowerStatus Object

-   -   Properties    -   BatteryChargeStatus—r/o. (Int)        -   1-High        -   2-Low        -   4-Critical        -   8-Charging        -   128-NoSystemBattery        -   255-Unknown    -   BatteryLifeFull—r/o. Approx. seconds available on fully charged        battery. −1 if unkonown. (Int)    -   BatteryLifePercent—r/o. 0-100, 255 unknown.    -   BatteryLifeRemaining—r/o. Approx. seconds remaining. −1 if        unknown. (Int)    -   PowerLineStatus—r/o. AC Status (Int)        -   0-Offline        -   1-Online        -   255-Unknown

System.Sounnd Object

-   -   Methods    -   Beep    -   PlaySound((String)FileSystemItem)    -   Properties    -   MasterVolume—r/w. The volume of the computer. (Float [0 . . .        1])    -   Mute—r/w. The mute status of the computer. (Boolean)

System.Shell Object

-   -   Collections    -   Directories (String)    -   Files (String)    -   FileSystemEntires (String) Directories+Files    -   Drives (System.Shell.Drive)—logical drives, <drive letter>:\    -   Event    -   DirectoryChanged((String)Path, (Function Pointer)Function)    -   Methods    -   (System.Shell.Item) ChooseFile((String)Path, (String)Filter)    -   (System.Shell.Item) ChooseFolder((String)Path) (String, RGB)        ColorPicker( )    -   CreateDirectory((String)Path)    -   Delete((String)Path)—Deletes an empty directory    -   Delete((String)Path, (Boolean)Recursively)—Deletes directory and        all children    -   Execute((String)Command)    -   ExecuteVerb((String)Command, (String)Verb)    -   Exists((String)Path)    -   (Boolean) Exists((String)Path)    -   FriendlyName    -   (String) GetCurrentDirectory( )    -   (String) GetDirectoryRoot((String)Path)    -   (System.Shell.Item) GetItem((String)Path)    -   (String) GetParent((String)Path)—Absolute path.    -   (String)Path KnownFolder((String)FolderName)        -   Desktop—The user's desktop folder        -   Startup—The user's startup folder        -   StartMenu—The user's Start Menu folder        -   Documents—The user's Documents folder        -   CommonStartup—The system's start menu startup group        -   CommonPrograms—The system's start menu programs group        -   CommonDesktop—The system's desktop folder        -   CommonFavorites—The system's favorites folder        -   CommonDocuments—The system's documents folder        -   System—The system's “System” folder        -   System×86—The system's 32 bit “system” folder on 64 bit            windows        -   Profile—The user's Profile folder        -   Windows—The system's Windows folder        -   Pictures—The user's Pictures folder        -   Music—The user's Music folder        -   Videos—The user's Videos folder        -   ProgramFiles—The system's Program files folder        -   ProgramFilesCommon—The system's Program files common folder        -   ProgramFilesX86—The system's 32 bit Program files folder on            64 bit windows        -   AdminTools—The user's Admin tools folder        -   CommonAdminTools—The system's admin tools folder        -   CommonMusic—The system's music folder        -   CommonPictures—The system's pictures folder        -   CommonVideos—The system's videos folder        -   UserProfiles—The system's user profiles folder        -   Downloads—The user's Downloads folder        -   CommonDownloads—The system's Program files folder        -   Application Data        -   Parts        -   Temporary        -   RecycleBin    -   Move((String)SourcePath, (String)DestinationPath)    -   Name    -   Navigate((String)Url)    -   (System.Shell.Item) SaveFileDialog((String)Path, (String)Filter)

System.Shell.Drive Object

-   -   Methods    -   EmptyRecycleBin    -   Properties    -   DriveFormat—r/o. Name of the file system. (String)    -   DriveLetter—r/o. (String)    -   DriveType—r/o. (Int)        -   0-Unknown        -   1-NoRootDirectory        -   2-Removable        -   3-Fixed        -   4-Network        -   5-CDRom        -   6-RAM    -   FreeSpace    -   IsReady—r/o. (Boolean)    -   Name—r/o. Drive name. (String)    -   RootDirectory—r/o. Directory for the drive.        (String->DirectoryInfo)    -   TotalFreeSpace—r/o. (Long)    -   TotalSize—r/o. (Long)    -   VolumeLabel—r/w. (String)    -   System.Shell.RecycleBin Object        -   Methods        -   Empty( )        -   Properties        -   FreeSpace—r/o. (Int)//Kb of free space        -   ItemsCount—r/o. (Int)        -   DisplayDeleteDialog—r/w. (Boolean)        -   Enabled—r/w. Preserves files for later recovery. (Boolean)        -   PrecentFull—r/o. (Float [0 . . . 1])        -   ReservedPercent—r/w. (Float [0 . . . 1])        -   SizeUsed—r/o. Kb usage (Int)        -   UseOneSettingForAllDrives—r/o. (Boolean)    -   System.Shell.Crive.RecycleBin Object        -   Methods        -   Empty( )        -   Properties        -   FreeSpace        -   ItemsCount—r/o. (Int)        -   DisplayDeleteDialog—r/w. (Boolean)        -   Enabled—r/w. Preserves files for later recovery. (Boolean)        -   PrecentFull—r/o. (Float [0 . . . 1])        -   ReservedPercent—r/w. (Float [0 . . . 1])        -   SizeUsed—r/o. Kb usage (Int)

System.Shell.Item Object

-   -   Collections    -   Metadata (System.Shell.Item.Metadata)    -   Methods    -   Copy((String)DestinationPath)    -   CreateText((String)Path)    -   Delete((String)Path)    -   MoveToRecycleBin((String)Path)    -   Show((String) Path)    -   Metadata((String)MetadataType)    -   InvokeVerb((String)Verb)    -   (Int) GetAttributes((String)Path)        -   1-ReadOnly        -   2-Hidden        -   4-System        -   16-Directory        -   32-Archive        -   64-Device        -   128-Normal        -   256-Temporary        -   512-SparseFile        -   1024-ReparsePoint        -   2048-Compressed    -   4096-Offline8192-NotContentIndexed        -   16384—Encrypted    -   GetCreationTime((String)Path)    -   Move((String)Path)    -   Properties    -   Folder—r/o. (String)    -   IsLink—r/o. (Boolean)    -   ItemType—r/o. Returns a known file type (String)        -   Audio        -   Video        -   Picture        -   Directory    -   Link—r/o. (String)    -   ModifyDate—r/w. (String)    -   Name—r/w. (String)    -   Path—r/o. (String)    -   Size—r/o. (Int)    -   Type—r/o. (String)    -   RealShellItem((String)Path)

System.Shell.Item.Metadata Object

-   -   Properties    -   Name—r/o. Name of the parsed metadata. (String)    -   Value—r/o. Value of the parsed metadata. (String)

System.Shell.RecycleBin Object

-   -   Methods    -   EmptyAll    -   ShowRecycleSettings—r/o.    -   Properties    -   FileCount—r/o. (Int)    -   FolderCount—r/o. (Int)    -   DisplayDeleteDialog—r/w. (Boolean)    -   Enabled—r/w. Preserves files for later recovery. (Boolean)    -   OneSettingForAllDrives—r/w. (Boolean)    -   PrecentFull—r/o. (Float [0 . . . 1])    -   ReservedPercent—r/w. (Float [0 . . . 1])    -   SizeUsed—r/o. Kb usage (Int)

System.Timezone Ojbect

-   -   Methods    -   (String) GetUtcOffset((String)LocalDateTime)    -   (Boolean) IsDaylightSavingsTime((String)UtcDateTime)    -   (String) ToLocalTime((String)UtcDateTime)    -   (String) ToUniversalTime((String)LocalDateTime)    -   Properties    -   CurrentTimeZone—r/o. (String)    -   DaylightName—r/o. (String)    -   StandardName—r/o. (String)

System.Web.HttpUtilObject

-   -   Methods    -   (String) UrlPathEncode((String)Url)

System.XML Object

-   -   Http Object        -   (HttpRequest)    -   DOM Object        -   (MsXmI)

PowerModeChangedEvent Object

SystemEvents Object

-   -   Events    -   DisplaySettingsChanged    -   LowMemory    -   PaletteChanged    -   PowerModeChanged    -   //to System.Environment TimeChanged    -   TimerElapsed    -   UserPreferenceChanged    -   UserPreferenceChanging        Event Object

Properties

ClickCount—r/o. (Int)

MouseWheelDelta—r/o. (Int)

Handled—r/w. (Boolean)

IsKeyDown—r/o. (Boolean)

Key—r/o. (String)

KeyState

-   -   None—0    -   Down—1    -   Toggled—2

ModifierKeys—r/o. (String)

-   -   None—0    -   Alt—1    -   Control—2    -   Shift—4    -   Windows—8    -   AltGr

MouseKeyStates—r/o.

-   -   None—0    -   LeftMouseButton—1    -   RightMouseButton—2    -   ShiftKey—4    -   ControlKey—8    -   MiddleMouseButton—16    -   AltKey—32

Source—r/o.

Element Object

Collections

Children (Element)

Events

DragEnter

DragLeave

Drop

GotFocus

KeyDown

KeyUp

LostFocus

MouseEnter

MouseLeave

MouseLeftButtonDown

MouseLeftButtonUp

MouseMove

MouseRightButtonDown

MouseRightButtonUp

MouseWheel

//to specific elements TextInput

Methods

ShowDialog((String)Message, (String)Title, (String)Type, (Int)Buttons)to part

CreateElement((String)ElementType) to part

-   -   (Element) FindChild((String)ElementName)    -   (Collection(Elements)) FindChildren((String)ElementName)

Insert((Element)Element)

Insert((Int)Index, (Element)Element)

Remove((Element)Element)

RemoveAt((Int)Index)

Slide((Element)Name)

FadeIn((Element)Name)

FadeOut (Element)Name)

Properties

Background—r/w. (RGBA) (String)

//Different than TabStop—CanAcceptKeyboardFocus

Canvas.Bottom—r/w. (Int)

Canvas.Left—r/w. (Int)

Canvas.Right—r/w. (Int)

Canvas.Top—r/w. (Int)

CenterX—r/w. (Int)

CenterY—r/w. (Int)

Cursor—r/w. (String)

-   -   Arrow    -   Cross    -   Hand

Height—r/w. (Int)

IsTabStop—r/w. (Boolean)

Name—r/w. (String)

Opacity—r/w. (Int) (0 clear . . . 1 opaque)

Parent—r/w. (Element)

Rotate

TabIndex—r/w. (Int)

Tag—r/o. (String)

Tooltip—r/w. (String)

Visibility—r/w.

-   -   Visible (0)    -   Hidden (1) Not shown, occupies layout    -   Collapsed (2) Not shown, no layout

Width—r/w. (Int)

ZOrder

Element.Drawing Object

Element.ActiveXControl Object

-   -   Collections    -   AmbientProperties    -   Events    -   Properties    -   Control—r/o. (Object)        -   ObjectId—r/w. (String)    -   DisplayAsDefault always false    -   DisplayName unknown    -   ForeColor White, or whatever default for a part is    -   BackColor Black, or part default    -   Font SeguoeUI, or part default    -   TextAlign Left    -   LocaleID LCID for current fallback language    -   Palette BitDepth    -   UserMode True

Element.Canvas

-   -   Inherits From Element

Button Object

-   -   Inherits From Element    -   Events    -   Click    -   Properties    -   RestingState—r/w. Url for image (String)    -   HotState    -   Pressed State    -   9GridState    -   Color—r/w. RGB Value (String)    -   IsDefault—r/w. (Boolean)    -   IsEnabled—r/w. (Boolean)    -   IsPressed—r/o. (Boolean)    -   FontFamily—r/w. (String)    -   FontSize—r/w. (Int)    -   FontStyle—r/w. (String)    -   FontWeight—r/w. (String)    -   HorizontalAlignment—r/w. (String)    -   TextWrap—r/w. (Boolean)    -   VerticalAlignment—r/w. (String)

Checkbox Object

-   -   Inherits From Element    -   Collections    -   Children (Element)    -   Events    -   CheckStateChanged    -   Click    -   Properties    -   CheckState        -   0-Unchecked        -   1-Checked        -   2-Indeterminate    -   IsChecked—r/w. (Boolean)    -   IsEnabled—r/w. (Boolean)    -   ThreeState—r/w. (Boolean)

ColorPicker Object

-   -   Inherits From Element    -   Properties    -   SelectedColor—r/w. (String)    -   ShowColorPickerDialog

ComboBox Object

-   -   Inherits From Element    -   Collection    -   Items (String)    -   Events    -   SelectionChanged    -   Properties    -   AutoComplete—r/w. (Boolean)    -   Color—r/w. RGB Value (String)    -   FontFamily—r/w. (String)    -   FontSize—r/w. (Int)    -   FontStyle—r/w. (String)    -   FontWeight—r/w. (String)    -   IsEditable—r/w. (Boolean)    -   IsEnabled—r/w. (Boolean)    -   IsReadOnly—r/w. (Boolean)    -   MaxDropDownHeight—r/w. (Int)    -   SelectedIndex—r/w. First selected item. −1 if none selected.        (Int)    -   Text—r/w. (String)

DatePicker Object

-   -   Inherits From Element    -   Properties    -   SelectedDate—r/w. (String)

FontPicker Object

-   -   Inherits From Element    -   Properties    -   SelectedFont—r/w. (String)

Hyperlink Object

-   -   Inherits From Element    -   Properties    -   ImageUrl—r/w. (String)    -   NavigateUrl—r/w. (String)    -   Text—r/w. (String)

Image Object

-   -   Inherits From Element    -   Methods    -   SizeToContent( )    -   Properties    -   Description—r/w. (String)    -   HorizontalAlignment—r/w. (String)    -   Source—r/w. Url of the image (String)    -   Stretch—r/w. (Int)        -   0—None; Preserve original size        -   1—Fill; Resize. Don't preserve aspect        -   2—Uniform; Resize, preserve aspect        -   3—UniformToFill; Fill, preserve aspect and clip.    -   StretchDirection        -   0—UpOnly. Make larger, not smaller        -   1—DownOnly. Make smaller, not larger        -   2—Both. Always resize to size according to Stretch    -   VerticalAlignment—r/w. (String)

Ink Object

-   -   Inherits From Element    -   Properties    -   InkImage    -   InkStrokes

ListBox Object

-   -   Inherits From Element    -   Collection    -   Items—r/w. (String)    -   SelectedIndicies—r/w. (Int)    -   Events    -   SelectionChanged    -   Properties    -   Color—r/w. RGB Value (String)    -   IsEditable—r/w. (Boolean)    -   IsEnabled—r/w. (Boolean)    -   IsReadOnly—r/w. (Boolean)    -   SelectedIndex—r/w. First selected item. −1 if none selected.        (Int)    -   SelectionMode—r/w. (String)        -   Single—one        -   Multiple—more than one        -   Extended—Groups, via Shift key    -   MaxDropDownHeight—r/w. (Int)    -   Text—r/w. (String)    -   TextWrap—r/w. (Boolean)

Password Object

-   -   Inherits From Element    -   Properties    -   Color—r/w. RGB Value (String)    -   FontFamily—r/w. (String)    -   FontSize—r/w. (Int)    -   FontStyle—r/w. (String)    -   FontWeight—r/w. (String)    -   HorizontalAlignment—r/w. (String)    -   IsEnabled—r/w. (Boolean)    -   MaxLength—r/w. (Int)    -   Password—r/w. (String)    -   PasswordChar—r/w (Char)    -   TextWrap—r/w. (Boolean)    -   VerticalAlignment—r/w. (String)

Popup Object

-   -   Inherits From Element    -   Events    -   Closed    -   Opened    -   Properties    -   DesktopX—r/w. (Int)    -   DesktopY—r/w. (Int)    -   HorizontalOffset    -   Placement        -   Bottom        -   Center        -   Right    -   Placement    -   SizeToContent—r/w. (Boolean)    -   VerticalOffset

RadioButtonList Object

-   -   Inherits From Element    -   Events    -   SelectionChanged    -   Properties    -   IsEnabled—r/w. (Boolean)

RadioButton Object

-   -   Inherits From Element    -   Events    -   Click    -   Properties    -   Color—r/w. RGB Value (String)    -   FontFamily—r/w. (String)    -   FontSize—r/w. (Int)    -   FontStyle—r/w. (String)    -   FontWeight—r/w. (String)    -   IsEnabled—r/w. (Boolean)    -   IsSelected—r/w. (Boolean)

RichText Object

-   -   Inherits From Element    -   Properties    -   RtfData    -   Text

ScrollBar Object

-   -   Inherits From Element    -   Collections    -   Children    -   Properties    -   IsEnabled—r/w. (Boolean)

SearchBox Object

-   -   Inherits From Element    -   Collections    -   SearchItems (String)    -   Properties    -   IsEnabled—r/w. (Boolean)    -   Text—r/w. (String)

TextBlock Object

-   -   Inherits From Element    -   Properties    -   Color—r/w. RGB Value (String)    -   FontFamily—r/w. (String)    -   FontSize—r/w. (Int)    -   FontStyle—r/w. (String)    -   FontWeight—r/w. (String)    -   HorizontalAlignment—r/w. (String)    -   IsEnabled—r/w. (Boolean)    -   Text—r/w. (String)    -   TextWrap—r/w. (Boolean)    -   VerticalAlignment—r/w. (String)

TextBox Object

-   -   Inherits From Element    -   Properties    -   AutoComplete—r/w. (Boolean)Color—r/w. RGB Value (String)    -   FontFamily—r/w. (String)    -   FontSize—r/w. (Int)    -   FontStyle—r/w. (String)    -   FontWeight—r/w. (String)    -   HorizontalAlignment—r/w. (String)    -   IsEnabled—r/w. (Boolean)    -   MaxLength—r/w. (Int)    -   Text—r/w. (String)    -   TextWrap—r/w. (Boolean)    -   VerticalAlignment—r/w. (String)

VideoPlayer Object

-   -   Inherits From Element    -   Properties    -   Source—r/w. Url for the video (String)        Items Object

Properties

Item—r/w. (String)

Count—r/o. (Int)

1. A computer system comprising: a memory storing computer readableinstructions and data, comprising: a definition data file defining anobject model corresponding to a user interface; a script data filecontaining executable computer code defining actions corresponding tothe user interface; a program parser module for creating the objectmodel of the user interface based on the definition data file andconverting the object model to the user interface; a script enginemodule for parsing the script data file and creating an event based onthe parsing of the script data file; a settings module for storingconfiguration settings for instantiation of the user interface; and aloader component module for one of passing the definition data file tothe program parser or passing the script data file to the script engine.2. The system of claim 1 wherein the loader component module passes thedefinition file to the program parser module.
 3. The system of claim 1wherein the loader component module passes the script file to the scriptengine module, which executes the loader component module.
 4. The systemof claim 1 wherein the program parser module injects the object modelinto the script engine module.
 5. The system of claim 1 furthercomprising a system object model containing procedures corresponding tothe object model and information on characteristics of the object model.6. The system of claim 5 further comprising a settings object model forstoring an instance of at least one of the definition file, the scriptfile, and a manifest file.
 7. The system of claim 5 wherein the programparser injects the system object model and the object model into thescript engine.
 8. The system of claim 7 wherein the script file ishooked up to the object model.
 9. The system of claim 8 wherein theobject model fires an event and execution of the script fileaccomplishes the event.
 10. The system of claim 1 further comprising auser interface including: a first display element defined by thedefinition file; and a second display element corresponding to a dockingarea on a computer display, wherein the first display element is capableof being displayed within the second display.
 11. The system of claim 10wherein the user interface further includes a third display element, thefirst display element being displayed in the third display element. 12.The system of claim 10 wherein the selection of the first displayelement causes the first display element to be displayed in the seconddisplay element.
 13. The system of claim 1 wherein the second displayelement of the user interface comprises a sidebar.
 14. The system ofclaim 13 wherein the first display element is docked onto the sidebar.15. The system of claim 1 wherein the computer-readable instructionsfurther comprise a pointer file containing a pointer to one of thedefinition file and the script file.
 16. A method for providinginformation in an application on a display comprising: providing a firstpointer, the first pointer indicating a file path to a location of oneof a file or a directory; searching the location indicated by the firstpointer for a pointer file containing at least a second pointerindicating the location of at least one of a definition file and ascript file, the definition file containing computer code for creatingan object model corresponding to a user interface and the script filecontaining computer code for executing the object model corresponding tothe user interface; parsing the at least one of the definition file andthe script file; creating a representation of an object modelcorresponding to the definition file if the second pointer indicates thelocation of the definition file; and converting the representation ofthe object model into the user interface.
 17. The method of claim 16wherein the second pointer indicates the location of the definitionfile.
 18. The method of claim 17 wherein the pointer file furthercontains a third pointer indicating the location of the script file. 19.The method of claim 18 further comprising executing the script file tocreate an event corresponding to the user interface.
 20. The method ofclaim 16 further comprising receiving hooking up the script file to therepresentation of the object model.